package com.utils.conmponentbase.app;

import com.alibaba.android.arouter.launcher.ARouter;
import com.scwang.smart.refresh.footer.ClassicsFooter;
import com.scwang.smart.refresh.header.ClassicsHeader;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.utils.data.DataApplication;
import com.utils.network2.RxHttpManager;

import static me.devilsen.czxing.util.BarCodeUtil.isDebug;

/**
 * MvvmDemo com.utils.conmponentbase.app
 * 2020-01-03 16:52
 */
public class BaseApplication extends DataApplication {
    public static BaseApplication sApplication;

    //static 代码段可以防止内存泄露
    static {
        //设置全局的Header构建器
        SmartRefreshLayout.setDefaultRefreshHeaderCreator((context, layout) -> {
            //全局设置主题颜色
            layout.setPrimaryColorsId(android.R.color.transparent, android.R.color.white);
            return new ClassicsHeader(context);
            //.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header，默认是 贝塞尔雷达Header
        });
        //设置全局的Footer构建器
        SmartRefreshLayout.setDefaultRefreshFooterCreator((context, layout) -> {
            //指定为经典Footer，默认是 BallPulseFooter
            return new ClassicsFooter(context).setDrawableSize(20);
        });
    }

    public static BaseApplication getInstant() {
        if (null == sApplication) {
            synchronized (BaseApplication.class) {
                if (null == sApplication) {
                    sApplication = new BaseApplication();
                }
            }
        }
        return sApplication;
    }

    @Override
    public void onCreate() {
        super.onCreate();

        if (isDebug()) {           // 这两行必须写在init之前，否则这些配置在init过程中将无效
            ARouter.openLog();     // 打印日志
            ARouter.openDebug();   // 开启调试模式(如果在InstantRun模式下运行，必须开启调试模式！线上版本需要关闭,否则有安全风险)
        }
        ARouter.init(this); // 尽可能早，推荐在Application中初始化
        RxHttpManager.init(this);
        //init();
    }
}
